package com.lizonghui.progressbutton;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.Button;

/**
 * Created by Administrator on 2016/6/27.
 * 自定义的进度按钮，继承已有控件Buttion
 * onDraw在原有控件上继续画一条进度条出来
 */
public class ProgressButton extends Button{
    //进度条，就需要最大值，进度值，是否可以显示进度
    private long mMax = 100;
    private long mProgress;

    /**
     * 设置最大值
     * @param max
     */
    public void setMax(long max) {
        mMax = max;
    }

    /**
     * 设置是否允许显示进度
     * @param isProgressEnable
     */
    public void setIsProgressEnable(boolean isProgressEnable) {
        this.isProgressEnable = isProgressEnable;
    }

    /**
     * 设置进度值，当前值
     * @param progress
     */
    public void setProgress(long progress) {
        mProgress = progress;
    }

    private boolean isProgressEnable  = true;





    //java代码写的时候用到
    public ProgressButton(Context context) {
        this(context,null);
    }

    //XML中定义用到这个
    public ProgressButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    //我们要在button上面写出文字，背景。就用复写onDraw

    @Override
    protected void onDraw(Canvas canvas) {
        //canvas是画布，可以拿画布去去画
        //画要用到画笔，getPaint方法得到
//        canvas.drawText("haha",30,30,getPaint());
        Drawable drawable = new ColorDrawable(Color.BLUE);//得到需要画的内容，我们只是填充颜色进去
        int left = 0;
        int top =0;
//        int right = mProgress / mMax * getMeasuredWidth();//只是一个int值，我们要得到进度值
        int right = (int) (mProgress*1.0f / mMax * getMeasuredWidth() + .5f);
        int bottom = getBottom();//得到测量时候的button值
        drawable.setBounds(left,top,right,bottom);//得到边界，确定画布要画的范围
        drawable.draw(canvas);//将画布内容画到自身
        super.onDraw(canvas);
    }
}
